﻿<?xml version="1.0" encoding="utf-8"?>
<xsd:schema id="nHydrateSchema" targetNamespace="http://schemas.microsoft.com/dsltools/nHydrate" elementFormDefault="qualified" xmlns="http://schemas.microsoft.com/dsltools/nHydrate" xmlns:core="http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:import id="CoreSchema" namespace="http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core" />
  <!-- nHydrateModel -->
  <xsd:element name="nHydrateModel" type="NHydrateModel" substitutionGroup="core:modelElement" />
  <xsd:complexType name="NHydrateModel">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Relationship: nHydrateModelHasEntities -->
          <xsd:element name="entities" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of nHydrateModelHasEntities</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:choice minOccurs="0" maxOccurs="unbounded" >
                  <xsd:element ref="nHydrateModelHasEntities">
                    <xsd:annotation>
                      <xsd:documentation>[Relationship deriving from nHydrateModelHasEntities needs to be serialized in full-form]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                  <xsd:element ref="entity" >
                    <xsd:annotation>
                      <xsd:documentation>[Target role-player]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                </xsd:choice>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: nHydrateModelHasStoredProcedures -->
          <xsd:element name="storedProcedures" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of nHydrateModelHasStoredProcedures</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="nHydrateModelHasStoredProcedures" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of nHydrateModelHasStoredProcedures needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: nHydrateModelHasViews -->
          <xsd:element name="views" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of nHydrateModelHasViews</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="nHydrateModelHasViews" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of nHydrateModelHasViews needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: nHydrateModelHasRelationFields -->
          <xsd:element name="relationFields" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of nHydrateModelHasRelationFields</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="nHydrateModelHasRelationFields" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of nHydrateModelHasRelationFields needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: nHydrateModelHasFunctions -->
          <xsd:element name="functions" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of nHydrateModelHasFunctions</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="nHydrateModelHasFunctions" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of nHydrateModelHasFunctions needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: nHydrateModelHasModules -->
          <xsd:element name="modules" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of nHydrateModelHasModules</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="nHydrateModelHasModules" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of nHydrateModelHasModules needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: nHydrateModelHasRelationModules -->
          <xsd:element name="relationModules" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of nHydrateModelHasRelationModules</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="nHydrateModelHasRelationModules" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of nHydrateModelHasRelationModules needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: nHydrateModelHasModelMetadata -->
          <xsd:element name="modelMetadata" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of nHydrateModelHasModelMetadata</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="nHydrateModelHasModelMetadata" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of nHydrateModelHasModelMetadata needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: nHydrateModelHasIndexModules -->
          <xsd:element name="indexModules" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of nHydrateModelHasIndexModules</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="nHydrateModelHasIndexModules" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of nHydrateModelHasIndexModules needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- dslVersion -->
        <xsd:attribute name="dslVersion" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Version of the model serialized in this file.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: CompanyName -->
        <xsd:attribute name="companyName" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Specifies the company name that will be used to build namespaces</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Copyright -->
        <xsd:attribute name="copyright" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines copyright to add to each file</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: DefaultNamespace -->
        <xsd:attribute name="defaultNamespace" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the default namespace and base project names of all generated projects. Leave blank for the default value of CompanyName.ProjectName</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: ProjectName -->
        <xsd:attribute name="projectName" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Specifies the name of the generated assembly</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: SQLServerType -->
        <xsd:attribute name="sQLServerType" type="DatabaseTypeConstants" >
          <xsd:annotation>
            <xsd:documentation>Determines the target SQL Server version</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: StoredProcedurePrefix -->
        <xsd:attribute name="storedProcedurePrefix" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the prefix for generated stored procedures</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: UseUTCTime -->
        <xsd:attribute name="useUTCTime" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Specifies whether UTC or local time is used for the created and modified audits</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Version -->
        <xsd:attribute name="version" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Specifies the version number of the generated assembly</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: CreatedByColumnName -->
        <xsd:attribute name="createdByColumnName" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the name of the created by field</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: CreatedDateColumnName -->
        <xsd:attribute name="createdDateColumnName" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the name of the created date field</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: ModifiedDateColumnName -->
        <xsd:attribute name="modifiedDateColumnName" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the name of the modified date field</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: ModifiedByColumnName -->
        <xsd:attribute name="modifiedByColumnName" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the name of the modified by field</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: TimestampColumnName -->
        <xsd:attribute name="timestampColumnName" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the name of the timestamp column</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: GrantUser -->
        <xsd:attribute name="grantUser" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the database user to grant access permissions to for database objects</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: TransformNames -->
        <xsd:attribute name="transformNames" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if all tokens are transformed from a lower case/undescore format to title case tokens on generation</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: UseModules -->
        <xsd:attribute name="useModules" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if generation will be based on modules</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: ShowViews -->
        <xsd:attribute name="showViews" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if views are visible on the diagram</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: ShowStoredProcedures -->
        <xsd:attribute name="showStoredProcedures" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if stored procedures are visible on the diagram</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: ShowFunctions -->
        <xsd:attribute name="showFunctions" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if functions are visible on the diagram</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Collate -->
        <xsd:attribute name="collate" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the database collation</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: ModelToDisk -->
        <xsd:attribute name="modelToDisk" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if model objects are duplicated on disk for easy editing</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: MaxPrecedenceOrder -->
        <xsd:attribute name="maxPrecedenceOrder" type="xsd:integer" >
          <xsd:annotation>
            <xsd:documentation>Determines the last used precedence for model objects used for installer generation</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: ModelVersion -->
        <xsd:attribute name="modelVersion" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the version of the model. Used for tracking changes and provides an upgrade path for older models</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: CompanyURL -->
        <xsd:attribute name="companyURL" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>The URL of the company</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: CompanyPhone -->
        <xsd:attribute name="companyPhone" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>The public phone numbner of the company</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: UseGeneratedCRUD -->
        <xsd:attribute name="useGeneratedCRUD" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if generated stored procedures are used for the CRUD layer.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: DiagramVisibility -->
        <xsd:attribute name="diagramVisibility" type="VisibilityTypeConstants" >
          <xsd:annotation>
            <xsd:documentation>Determines which objects are visible on the diagram</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: SupportedPlatforms -->
        <xsd:attribute name="supportedPlatforms" type="DatabasePlatformConstants" >
          <xsd:annotation>
            <xsd:documentation>Determines the platforms supported by the generation output</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: OutputTarget -->
        <xsd:attribute name="outputTarget" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>The target location for generated projects</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: TenantPrefix -->
        <xsd:attribute name="tenantPrefix" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the prefix for generated views that map to tenant tables</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: TenantColumnName -->
        <xsd:attribute name="tenantColumnName" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the name of the column to hold tenant information for tenant tables</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- nHydrateModel Moniker -->
  <xsd:element name="nHydrateModelMoniker" type="NHydrateModelMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="NHydrateModelMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for nHydrateModel instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Entity -->
  <xsd:element name="entity" type="Entity" substitutionGroup="core:modelElement" />
  <xsd:complexType name="Entity">
    <xsd:annotation>
      <xsd:documentation>This object represents a database table</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Relationship: EntityHasEntities -->
          <xsd:element name="childEntities" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of EntityHasEntities</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="entityHasEntities" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of EntityHasEntities needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: EntityHasFields -->
          <xsd:element name="fields" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of EntityHasFields</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="entityHasFields" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of EntityHasFields needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: EntityHasStaticDatum -->
          <xsd:element name="staticDatum" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of EntityHasStaticDatum</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="entityHasStaticDatum" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of EntityHasStaticDatum needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: EntityInheritsEntity -->
          <xsd:element name="parentInheritedEntity" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instance of EntityInheritsEntity</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="entityInheritsEntity" minOccurs="0" maxOccurs="1">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of EntityInheritsEntity needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: EntityHasComposites -->
          <xsd:element name="composites" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of EntityHasComposites</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="entityHasComposites" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of EntityHasComposites needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: EntityHasMetadata -->
          <xsd:element name="entityMetadata" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of EntityHasMetadata</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="entityHasMetadata" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of EntityHasMetadata needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: EntityReferencesModules -->
          <xsd:element name="modules" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of EntityReferencesModules</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="entityReferencesModules" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of EntityReferencesModules needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: EntityHasIndexes -->
          <xsd:element name="indexes" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of EntityHasIndexes</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="entityHasIndexes" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of EntityHasIndexes needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: EntityHasViews -->
          <xsd:element name="childViews" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of EntityHasViews</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="entityHasViews" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of EntityHasViews needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Name -->
        <xsd:attribute name="name" type="xsd:string" use="required" >
          <xsd:annotation>
            <xsd:documentation>Determines the name of this entity</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Summary -->
        <xsd:attribute name="summary" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>A summary of the entity</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: AllowAuditTracking -->
        <xsd:attribute name="allowAuditTracking" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if there is a full audit trail for this entity</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: AllowCreateAudit -->
        <xsd:attribute name="allowCreateAudit" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if the fields &apos;CreatedBy&apos; and &apos;CreateDate&apos; are created</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: AllowModifyAudit -->
        <xsd:attribute name="allowModifyAudit" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if the fields &apos;ModifiedBy&apos; and &apos;ModifiedDate&apos; are created</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: AllowTimestamp -->
        <xsd:attribute name="allowTimestamp" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this table will have a timestamp field created and used for synchronization</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: IsAssociative -->
        <xsd:attribute name="isAssociative" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this is an intermediary entity between two other entities</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: EnforcePrimaryKey -->
        <xsd:attribute name="enforcePrimaryKey" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this primary key is enforced in the database</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: IsGenerated -->
        <xsd:attribute name="isGenerated" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this item is used when generating</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Immutable -->
        <xsd:attribute name="immutable" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this entity can be changed</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Schema -->
        <xsd:attribute name="schema" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>The database schema in which this entity lives</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: CodeFacade -->
        <xsd:attribute name="codeFacade" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the object name used in the API. If this property is blank the &apos;Name&apos; property is used in the API. This property can be used to mask the database identifier.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: GeneratesDoubleDerived -->
        <xsd:attribute name="generatesDoubleDerived" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>If True, will generate both a base class with all functionality and a partial class to support customization through overrides</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: TypedEntity -->
        <xsd:attribute name="typedEntity" type="TypedEntityConstants" >
          <xsd:annotation>
            <xsd:documentation>Determines if this is a typed entity</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: IsTenant -->
        <xsd:attribute name="isTenant" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if the table is tenant based</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Entity Moniker -->
  <xsd:element name="entityMoniker" type="EntityMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="EntityMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for Entity instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="name" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Field -->
  <xsd:element name="field" type="Field" substitutionGroup="core:modelElement" />
  <xsd:complexType name="Field">
    <xsd:annotation>
      <xsd:documentation>This is a field in a database table</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Relationship: FieldHasMetadata -->
          <xsd:element name="fieldMetadata" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of FieldHasMetadata</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="fieldHasMetadata" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of FieldHasMetadata needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: FieldReferencesModules -->
          <xsd:element name="modules" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of FieldReferencesModules</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="fieldReferencesModules" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of FieldReferencesModules needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Name -->
        <xsd:attribute name="name" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the name of this field</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: FriendlyName -->
        <xsd:attribute name="friendlyName" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines a prompt that can be displayed in the UI</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Nullable -->
        <xsd:attribute name="nullable" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this item allows null values</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Collate -->
        <xsd:attribute name="collate" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the field collation</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: IsCalculated -->
        <xsd:attribute name="isCalculated" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this field is based on a calculated database column</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: DataType -->
        <xsd:attribute name="dataType" type="DataTypeConstants" >
          <xsd:annotation>
            <xsd:documentation>Determines the data type of this field</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Default -->
        <xsd:attribute name="default" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the default value of this field</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Summary -->
        <xsd:attribute name="summary" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines summary text were applicable</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Formula -->
        <xsd:attribute name="formula" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>The formula for a computed field</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: IsGenerated -->
        <xsd:attribute name="isGenerated" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this item is used when generating</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Identity -->
        <xsd:attribute name="identity" type="IdentityTypeConstants" >
          <xsd:annotation>
            <xsd:documentation>Determines the type of identity for this column</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: IsIndexed -->
        <xsd:attribute name="isIndexed" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this field has an associated database index</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: IsUnique -->
        <xsd:attribute name="isUnique" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this field is marked as unique</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Length -->
        <xsd:attribute name="length" type="xsd:integer" >
          <xsd:annotation>
            <xsd:documentation>Determines the size of this column in bytes</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Min -->
        <xsd:attribute name="min" type="xsd:double" >
          <xsd:annotation>
            <xsd:documentation>Determines the minimum value for a int, long, float value</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Max -->
        <xsd:attribute name="max" type="xsd:double" >
          <xsd:annotation>
            <xsd:documentation>Determines the maximum value for a int, long, float value</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: IsPrimaryKey -->
        <xsd:attribute name="isPrimaryKey" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determine if this field is the entity primary key</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Scale -->
        <xsd:attribute name="scale" type="xsd:integer" >
          <xsd:annotation>
            <xsd:documentation>Determines the scale of some data types</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: ValidationExpression -->
        <xsd:attribute name="validationExpression" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>The validation pattern used for UI controls to validate this field value</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: CodeFacade -->
        <xsd:attribute name="codeFacade" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the object name used in the API. If this property is blank the &apos;Name&apos; property is used in the API. This property can be used to mask the database identifier.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: IsReadOnly -->
        <xsd:attribute name="isReadOnly" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if the property can be set in code</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: IsBrowsable -->
        <xsd:attribute name="isBrowsable" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this property is browsable in the UI</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Category -->
        <xsd:attribute name="category" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the property grid category of this item</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: SortOrder -->
        <xsd:attribute name="sortOrder" type="xsd:integer" >
          <xsd:annotation>
            <xsd:documentation>Order Entered/Database order</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: DataFormatString -->
        <xsd:attribute name="dataFormatString" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Identifies the format string for data input and presentation</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: UIDataType -->
        <xsd:attribute name="uIDataType" type="UIDataTypeConstants" >
          <xsd:annotation>
            <xsd:documentation>Determines formatting information for the UI</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: DefaultIsFunc -->
        <xsd:attribute name="defaultIsFunc" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if the default value is a function</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: ImportedDefaultName -->
        <xsd:attribute name="importedDefaultName" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>The imported database default name</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Field Moniker -->
  <xsd:element name="fieldMoniker" type="FieldMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="FieldMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for Field instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- StoredProcedure -->
  <xsd:element name="storedProcedure" type="StoredProcedure" substitutionGroup="core:modelElement" />
  <xsd:complexType name="StoredProcedure">
    <xsd:annotation>
      <xsd:documentation>This is a custom database stored procedure</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Relationship: StoredProcedureHasFields -->
          <xsd:element name="fields" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of StoredProcedureHasFields</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="storedProcedureHasFields" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of StoredProcedureHasFields needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: StoredProcedureHasParameters -->
          <xsd:element name="parameters" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of StoredProcedureHasParameters</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="storedProcedureHasParameters" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of StoredProcedureHasParameters needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: StoredProcedureReferencesModules -->
          <xsd:element name="modules" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of StoredProcedureReferencesModules</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="storedProcedureReferencesModules" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of StoredProcedureReferencesModules needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: SQL -->
        <xsd:attribute name="sQL" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines SQL statement used to create the database stored procedure object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Name -->
        <xsd:attribute name="name" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the name of this object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: IsGenerated -->
        <xsd:attribute name="isGenerated" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this item is used when generating</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: CodeFacade -->
        <xsd:attribute name="codeFacade" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the object name used in the API. If this property is blank the &apos;Name&apos; property is used in the API. This property can be used to mask the database identifier.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Summary -->
        <xsd:attribute name="summary" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the summary of this object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Schema -->
        <xsd:attribute name="schema" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the parent schema for this object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: IsExisting -->
        <xsd:attribute name="isExisting" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines the this stored procedure is a pre-existing one and should not be overwritten.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: DatabaseObjectName -->
        <xsd:attribute name="databaseObjectName" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the name of this stored procedure in the database. Leave empty to auto-generate.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: GeneratesDoubleDerived -->
        <xsd:attribute name="generatesDoubleDerived" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>If True, will generate both a base class with all functionality and a partial class to support customization through overrides</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: PrecedenceOrder -->
        <xsd:attribute name="precedenceOrder" type="xsd:integer" >
          <xsd:annotation>
            <xsd:documentation>Determines the order generated scripts are run</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- StoredProcedure Moniker -->
  <xsd:element name="storedProcedureMoniker" type="StoredProcedureMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="StoredProcedureMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for StoredProcedure instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- StoredProcedureField -->
  <xsd:element name="storedProcedureField" type="StoredProcedureField" substitutionGroup="core:modelElement" />
  <xsd:complexType name="StoredProcedureField">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Name -->
        <xsd:attribute name="name" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the name of this object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: FriendlyName -->
        <xsd:attribute name="friendlyName" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines a friend name to display to users</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: CodeFacade -->
        <xsd:attribute name="codeFacade" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the object name used in the API. If this property is blank the &apos;Name&apos; property is used in the API. This property can be used to mask the database identifier.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Nullable -->
        <xsd:attribute name="nullable" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this item allows null values</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: DataType -->
        <xsd:attribute name="dataType" type="DataTypeConstants" >
          <xsd:annotation>
            <xsd:documentation>Determines the data type of this field</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Summary -->
        <xsd:attribute name="summary" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the summary of this object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Default -->
        <xsd:attribute name="default" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the default value of this object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: IsGenerated -->
        <xsd:attribute name="isGenerated" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this item is used when generating</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Length -->
        <xsd:attribute name="length" type="xsd:integer" >
          <xsd:annotation>
            <xsd:documentation>Determines the size of this field in bytes</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Scale -->
        <xsd:attribute name="scale" type="xsd:integer" >
          <xsd:annotation>
            <xsd:documentation>Determines the scale of some data types</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- StoredProcedureField Moniker -->
  <xsd:element name="storedProcedureFieldMoniker" type="StoredProcedureFieldMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="StoredProcedureFieldMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for StoredProcedureField instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- StoredProcedureParameter -->
  <xsd:element name="storedProcedureParameter" type="StoredProcedureParameter" substitutionGroup="core:modelElement" />
  <xsd:complexType name="StoredProcedureParameter">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Name -->
        <xsd:attribute name="name" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the name of this object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: CodeFacade -->
        <xsd:attribute name="codeFacade" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the object name used in the API. If this property is blank the &apos;Name&apos; property is used in the API. This property can be used to mask the database identifier.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Nullable -->
        <xsd:attribute name="nullable" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this item allows null values</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: DataType -->
        <xsd:attribute name="dataType" type="DataTypeConstants" >
          <xsd:annotation>
            <xsd:documentation>Determines the data type of this field</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Summary -->
        <xsd:attribute name="summary" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the summary of this object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Default -->
        <xsd:attribute name="default" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the default value of this object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: IsGenerated -->
        <xsd:attribute name="isGenerated" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this item is used when generating</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Length -->
        <xsd:attribute name="length" type="xsd:integer" >
          <xsd:annotation>
            <xsd:documentation>Determines the size of this field in bytes</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: IsOutputParameter -->
        <xsd:attribute name="isOutputParameter" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this is an output parameter for the mapped stored proc</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Scale -->
        <xsd:attribute name="scale" type="xsd:integer" >
          <xsd:annotation>
            <xsd:documentation>Determines the scale of some data types</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: SortOrder -->
        <xsd:attribute name="sortOrder" type="xsd:integer" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- StoredProcedureParameter Moniker -->
  <xsd:element name="storedProcedureParameterMoniker" type="StoredProcedureParameterMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="StoredProcedureParameterMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for StoredProcedureParameter instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- View -->
  <xsd:element name="view" type="View" substitutionGroup="core:modelElement" />
  <xsd:complexType name="View">
    <xsd:annotation>
      <xsd:documentation>This is a custom database view</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Relationship: ViewHasFields -->
          <xsd:element name="fields" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of ViewHasFields</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="viewHasFields" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of ViewHasFields needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: ViewReferencesModules -->
          <xsd:element name="modules" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of ViewReferencesModules</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="viewReferencesModules" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of ViewReferencesModules needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: SQL -->
        <xsd:attribute name="sQL" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines SQL statement used to create the database view object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Name -->
        <xsd:attribute name="name" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the name of this object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: IsGenerated -->
        <xsd:attribute name="isGenerated" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this item is used when generating</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: CodeFacade -->
        <xsd:attribute name="codeFacade" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the object name used in the API. If this property is blank the &apos;Name&apos; property is used in the API. This property can be used to mask the database identifier.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Summary -->
        <xsd:attribute name="summary" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the summary of this object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Schema -->
        <xsd:attribute name="schema" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the parent schema for this object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: GeneratesDoubleDerived -->
        <xsd:attribute name="generatesDoubleDerived" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>If True, will generate both a base class with all functionality and a partial class to support customization through overrides</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: PrecedenceOrder -->
        <xsd:attribute name="precedenceOrder" type="xsd:integer" >
          <xsd:annotation>
            <xsd:documentation>Determines the order generated scripts are run</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- View Moniker -->
  <xsd:element name="viewMoniker" type="ViewMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="ViewMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for View instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- ViewField -->
  <xsd:element name="viewField" type="ViewField" substitutionGroup="core:modelElement" />
  <xsd:complexType name="ViewField">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Name -->
        <xsd:attribute name="name" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the name of this object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: FriendlyName -->
        <xsd:attribute name="friendlyName" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines a friend name to display to users</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Nullable -->
        <xsd:attribute name="nullable" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this item allows null values</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: DataType -->
        <xsd:attribute name="dataType" type="DataTypeConstants" >
          <xsd:annotation>
            <xsd:documentation>Determines the data type of this field</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Default -->
        <xsd:attribute name="default" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the default value of this object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Summary -->
        <xsd:attribute name="summary" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the summary of this object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: IsGenerated -->
        <xsd:attribute name="isGenerated" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this item is used when generating</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Length -->
        <xsd:attribute name="length" type="xsd:integer" >
          <xsd:annotation>
            <xsd:documentation>Determines the size of this field in bytes</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Scale -->
        <xsd:attribute name="scale" type="xsd:integer" >
          <xsd:annotation>
            <xsd:documentation>Determines the scale of some data types</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: CodeFacade -->
        <xsd:attribute name="codeFacade" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the object name used in the API. If this property is blank the &apos;Name&apos; property is used in the API. This property can be used to mask the database identifier.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- ViewField Moniker -->
  <xsd:element name="viewFieldMoniker" type="ViewFieldMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="ViewFieldMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for ViewField instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- RelationField -->
  <xsd:element name="relationField" type="RelationField" substitutionGroup="core:modelElement" />
  <xsd:complexType name="RelationField">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: SourceFieldId -->
        <xsd:attribute name="sourceFieldId" type="xsd:string" />
        <!-- Property: TargetFieldId -->
        <xsd:attribute name="targetFieldId" type="xsd:string" />
        <!-- Property: RelationID -->
        <xsd:attribute name="relationID" type="xsd:string" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- RelationField Moniker -->
  <xsd:element name="relationFieldMoniker" type="RelationFieldMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="RelationFieldMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for RelationField instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- StaticData -->
  <xsd:element name="staticData" type="StaticData" substitutionGroup="core:modelElement" />
  <xsd:complexType name="StaticData">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: ColumnKey -->
        <xsd:attribute name="columnKey" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>The column identifier for the field value</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Value -->
        <xsd:attribute name="value" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>The value for this column in the current record</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: OrderKey -->
        <xsd:attribute name="orderKey" type="xsd:integer" >
          <xsd:annotation>
            <xsd:documentation>The record number [1..N]</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- StaticData Moniker -->
  <xsd:element name="staticDataMoniker" type="StaticDataMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="StaticDataMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for StaticData instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Composite -->
  <xsd:element name="composite" type="Composite" substitutionGroup="core:modelElement" />
  <xsd:complexType name="Composite">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Relationship: CompositeHasFields -->
          <xsd:element name="fields" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of CompositeHasFields</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="compositeHasFields" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of CompositeHasFields needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Name -->
        <xsd:attribute name="name" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the name of this object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: CodeFacade -->
        <xsd:attribute name="codeFacade" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the object name used in the API. If this property is blank the &apos;Name&apos; property is used in the API. This property can be used to mask the database identifier.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: IsGenerated -->
        <xsd:attribute name="isGenerated" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this item is used when generating</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Summary -->
        <xsd:attribute name="summary" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the summary of this object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Composite Moniker -->
  <xsd:element name="compositeMoniker" type="CompositeMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="CompositeMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for Composite instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- CompositeField -->
  <xsd:element name="compositeField" type="CompositeField" substitutionGroup="core:modelElement" />
  <xsd:complexType name="CompositeField">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: FieldId -->
        <xsd:attribute name="fieldId" type="xsd:string" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- CompositeField Moniker -->
  <xsd:element name="compositeFieldMoniker" type="CompositeFieldMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="CompositeFieldMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for CompositeField instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- EntityMetadata -->
  <xsd:element name="entityMetadata" type="EntityMetadata" substitutionGroup="core:modelElement" />
  <xsd:complexType name="EntityMetadata">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Key -->
        <xsd:attribute name="key" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>The unqiue key of this metadata</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Value -->
        <xsd:attribute name="value" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>The value of this metadata</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Summary -->
        <xsd:attribute name="summary" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>A summary of thsi object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- EntityMetadata Moniker -->
  <xsd:element name="entityMetadataMoniker" type="EntityMetadataMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="EntityMetadataMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for EntityMetadata instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- FieldMetadata -->
  <xsd:element name="fieldMetadata" type="FieldMetadata" substitutionGroup="core:modelElement" />
  <xsd:complexType name="FieldMetadata">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Key -->
        <xsd:attribute name="key" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>The unique key of this metadata</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Value -->
        <xsd:attribute name="value" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>The value of this metadata</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Summary -->
        <xsd:attribute name="summary" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>A summary of thsi object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- FieldMetadata Moniker -->
  <xsd:element name="fieldMetadataMoniker" type="FieldMetadataMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="FieldMetadataMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for FieldMetadata instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Function -->
  <xsd:element name="function" type="Function" substitutionGroup="core:modelElement" />
  <xsd:complexType name="Function">
    <xsd:annotation>
      <xsd:documentation>This is a custom database function</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Relationship: FunctionHasParameters -->
          <xsd:element name="parameters" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of FunctionHasParameters</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="functionHasParameters" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of FunctionHasParameters needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: FunctionHasFields -->
          <xsd:element name="fields" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of FunctionHasFields</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="functionHasFields" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of FunctionHasFields needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: FunctionReferencesModules -->
          <xsd:element name="modules" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of FunctionReferencesModules</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="functionReferencesModules" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of FunctionReferencesModules needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: SQL -->
        <xsd:attribute name="sQL" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines SQL statement used to create the database function object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Name -->
        <xsd:attribute name="name" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the name of this object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: IsGenerated -->
        <xsd:attribute name="isGenerated" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this item is used when generating</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: CodeFacade -->
        <xsd:attribute name="codeFacade" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the object name used in the API. If this property is blank the &apos;Name&apos; property is used in the API. This property can be used to mask the database identifier.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Summary -->
        <xsd:attribute name="summary" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the summary of this object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Schema -->
        <xsd:attribute name="schema" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the parent schema for this object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: IsTable -->
        <xsd:attribute name="isTable" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this is a table function</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: ReturnVariable -->
        <xsd:attribute name="returnVariable" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Optional variable name used in function declaration return type</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: PrecedenceOrder -->
        <xsd:attribute name="precedenceOrder" type="xsd:integer" >
          <xsd:annotation>
            <xsd:documentation>Determines the order generated scripts are run</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Function Moniker -->
  <xsd:element name="functionMoniker" type="FunctionMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="FunctionMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for Function instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- FunctionParameter -->
  <xsd:element name="functionParameter" type="FunctionParameter" substitutionGroup="core:modelElement" />
  <xsd:complexType name="FunctionParameter">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Name -->
        <xsd:attribute name="name" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the name of this object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: CodeFacade -->
        <xsd:attribute name="codeFacade" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the object name used in the API. If this property is blank the &apos;Name&apos; property is used in the API. This property can be used to mask the database identifier.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Nullable -->
        <xsd:attribute name="nullable" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this item allows null values</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: DataType -->
        <xsd:attribute name="dataType" type="DataTypeConstants" >
          <xsd:annotation>
            <xsd:documentation>Determines the data type of this field</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Summary -->
        <xsd:attribute name="summary" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the summary of this object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Default -->
        <xsd:attribute name="default" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the default value of this object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: IsGenerated -->
        <xsd:attribute name="isGenerated" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this item is used when generating</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Length -->
        <xsd:attribute name="length" type="xsd:integer" >
          <xsd:annotation>
            <xsd:documentation>Determines the size of this field in bytes</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Scale -->
        <xsd:attribute name="scale" type="xsd:integer" >
          <xsd:annotation>
            <xsd:documentation>Determines the scale of some data types</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: SortOrder -->
        <xsd:attribute name="sortOrder" type="xsd:integer" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- FunctionParameter Moniker -->
  <xsd:element name="functionParameterMoniker" type="FunctionParameterMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="FunctionParameterMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for FunctionParameter instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- FunctionField -->
  <xsd:element name="functionField" type="FunctionField" substitutionGroup="core:modelElement" />
  <xsd:complexType name="FunctionField">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Name -->
        <xsd:attribute name="name" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the name of this object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: FriendlyName -->
        <xsd:attribute name="friendlyName" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines a friend name to display to users</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: CodeFacade -->
        <xsd:attribute name="codeFacade" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the object name used in the API. If this property is blank the &apos;Name&apos; property is used in the API. This property can be used to mask the database identifier.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Nullable -->
        <xsd:attribute name="nullable" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this item allows null values</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: DataType -->
        <xsd:attribute name="dataType" type="DataTypeConstants" >
          <xsd:annotation>
            <xsd:documentation>Determines the data type of this field</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Summary -->
        <xsd:attribute name="summary" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the summary of this object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Default -->
        <xsd:attribute name="default" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the default value of this object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: IsGenerated -->
        <xsd:attribute name="isGenerated" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this item is used when generating</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Length -->
        <xsd:attribute name="length" type="xsd:integer" >
          <xsd:annotation>
            <xsd:documentation>Determines the size of this field in bytes</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Scale -->
        <xsd:attribute name="scale" type="xsd:integer" >
          <xsd:annotation>
            <xsd:documentation>Determines the scale of some data types</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- FunctionField Moniker -->
  <xsd:element name="functionFieldMoniker" type="FunctionFieldMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="FunctionFieldMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for FunctionField instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Module -->
  <xsd:element name="module" type="Module" substitutionGroup="core:modelElement" />
  <xsd:complexType name="Module">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Relationship: ModuleHasModuleRules -->
          <xsd:element name="moduleRules" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of ModuleHasModuleRules</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="moduleHasModuleRules" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of ModuleHasModuleRules needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Name -->
        <xsd:attribute name="name" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the name of this object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Summary -->
        <xsd:attribute name="summary" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines summary text were applicable</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Module Moniker -->
  <xsd:element name="moduleMoniker" type="ModuleMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="ModuleMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for Module instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- RelationModule -->
  <xsd:element name="relationModule" type="RelationModule" substitutionGroup="core:modelElement" />
  <xsd:complexType name="RelationModule">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: RelationID -->
        <xsd:attribute name="relationID" type="xsd:string" />
        <!-- Property: ModuleId -->
        <xsd:attribute name="moduleId" type="xsd:string" />
        <!-- Property: Included -->
        <xsd:attribute name="included" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this relation is included in the module</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: IsEnforced -->
        <xsd:attribute name="isEnforced" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this relation is enforced in the database</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- RelationModule Moniker -->
  <xsd:element name="relationModuleMoniker" type="RelationModuleMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="RelationModuleMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for RelationModule instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- ModuleRule -->
  <xsd:element name="moduleRule" type="ModuleRule" substitutionGroup="core:modelElement" />
  <xsd:complexType name="ModuleRule">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Status -->
        <xsd:attribute name="status" type="ModuleRuleStatusTypeConstants" >
          <xsd:annotation>
            <xsd:documentation>The grouping for this rule</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: DependentModule -->
        <xsd:attribute name="dependentModule" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>The module to which the status is applied</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Summary -->
        <xsd:attribute name="summary" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>A summary of the rule</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Name -->
        <xsd:attribute name="name" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the name of this rule</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Inclusion -->
        <xsd:attribute name="inclusion" type="xsd:integer" >
          <xsd:annotation>
            <xsd:documentation>Determines the object types that are included by this rule</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Enforced -->
        <xsd:attribute name="enforced" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this rule is enfored on validation</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- ModuleRule Moniker -->
  <xsd:element name="moduleRuleMoniker" type="ModuleRuleMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="ModuleRuleMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for ModuleRule instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Index -->
  <xsd:element name="index" type="Index" substitutionGroup="core:modelElement" />
  <xsd:complexType name="Index">
    <xsd:annotation>
      <xsd:documentation>A defined index for an entity</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Relationship: IndexHasIndexColumns -->
          <xsd:element name="indexColumns" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of IndexHasIndexColumns</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="indexHasIndexColumns" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of IndexHasIndexColumns needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: ParentEntityID -->
        <xsd:attribute name="parentEntityID" type="xsd:string" />
        <!-- Property: IsUnique -->
        <xsd:attribute name="isUnique" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this index is unique</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Summary -->
        <xsd:attribute name="summary" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines the summary of this object</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: IndexType -->
        <xsd:attribute name="indexType" type="IndexTypeConstants" />
        <!-- Property: ImportedName -->
        <xsd:attribute name="importedName" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>The original name imported from database</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Clustered -->
        <xsd:attribute name="clustered" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Create this a a clustered index</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Index Moniker -->
  <xsd:element name="indexMoniker" type="IndexMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="IndexMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for Index instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- IndexColumn -->
  <xsd:element name="indexColumn" type="IndexColumn" substitutionGroup="core:modelElement" />
  <xsd:complexType name="IndexColumn">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: FieldID -->
        <xsd:attribute name="fieldID" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>The referenced entity field</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Ascending -->
        <xsd:attribute name="ascending" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this column is indexed in ascending order</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: SortOrder -->
        <xsd:attribute name="sortOrder" type="xsd:integer" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- IndexColumn Moniker -->
  <xsd:element name="indexColumnMoniker" type="IndexColumnMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="IndexColumnMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for IndexColumn instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- ModelMetadata -->
  <xsd:element name="modelMetadata" type="ModelMetadata" substitutionGroup="core:modelElement" />
  <xsd:complexType name="ModelMetadata">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Key -->
        <xsd:attribute name="key" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>The unqiue key of this metadata</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Value -->
        <xsd:attribute name="value" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>The value of this metadata</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- ModelMetadata Moniker -->
  <xsd:element name="modelMetadataMoniker" type="ModelMetadataMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="ModelMetadataMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for ModelMetadata instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- IndexModule -->
  <xsd:element name="indexModule" type="IndexModule" substitutionGroup="core:modelElement" />
  <xsd:complexType name="IndexModule">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: IndexID -->
        <xsd:attribute name="indexID" type="xsd:string" />
        <!-- Property: ModuleId -->
        <xsd:attribute name="moduleId" type="xsd:string" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- IndexModule Moniker -->
  <xsd:element name="indexModuleMoniker" type="IndexModuleMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="IndexModuleMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for IndexModule instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- nHydrateModelHasEntities -->
  <xsd:element name="nHydrateModelHasEntities" abstract="true" type="NHydrateModelHasEntities" substitutionGroup="core:modelElement" />
  <xsd:complexType name="NHydrateModelHasEntities" abstract="true" >
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end Entity -->
          <xsd:element ref="entity" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- nHydrateModelHasEntities Moniker -->
  <xsd:element name="nHydrateModelHasEntitiesMoniker" type="NHydrateModelHasEntitiesMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="NHydrateModelHasEntitiesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for nHydrateModelHasEntities instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- EntityHasEntities -->
  <xsd:element name="entityHasEntities" type="EntityHasEntities" substitutionGroup="core:modelElement" />
  <xsd:complexType name="EntityHasEntities">
    <xsd:annotation>
      <xsd:documentation>Association relationship between entities</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end Entity -->
          <xsd:element ref="entityMoniker" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Multiplicity -->
        <xsd:attribute name="multiplicity" type="RelationshipTypeConstants" >
          <xsd:annotation>
            <xsd:documentation>Determines the multiplicity of this relationship</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: RoleName -->
        <xsd:attribute name="roleName" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>The named relation necessary when there is more than one relation between two entities</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: IsEnforced -->
        <xsd:attribute name="isEnforced" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this relationship is enfored in the database or just in code</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: ImportData -->
        <xsd:attribute name="importData" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Internal data to track imports</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Summary -->
        <xsd:attribute name="summary" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines summary text were applicable</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: ImportedConstraintName -->
        <xsd:attribute name="importedConstraintName" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>The imported database constraint name</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- EntityHasEntities Moniker -->
  <xsd:element name="entityHasEntitiesMoniker" type="EntityHasEntitiesMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="EntityHasEntitiesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for EntityHasEntities instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- EntityHasFields -->
  <xsd:element name="entityHasFields" type="EntityHasFields" substitutionGroup="core:modelElement" />
  <xsd:complexType name="EntityHasFields">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end Field -->
          <xsd:element ref="field" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- EntityHasFields Moniker -->
  <xsd:element name="entityHasFieldsMoniker" type="EntityHasFieldsMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="EntityHasFieldsMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for EntityHasFields instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- nHydrateModelHasStoredProcedures -->
  <xsd:element name="nHydrateModelHasStoredProcedures" type="NHydrateModelHasStoredProcedures" substitutionGroup="core:modelElement" />
  <xsd:complexType name="NHydrateModelHasStoredProcedures">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end StoredProcedure -->
          <xsd:element ref="storedProcedure" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- nHydrateModelHasStoredProcedures Moniker -->
  <xsd:element name="nHydrateModelHasStoredProceduresMoniker" type="NHydrateModelHasStoredProceduresMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="NHydrateModelHasStoredProceduresMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for nHydrateModelHasStoredProcedures instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- StoredProcedureHasFields -->
  <xsd:element name="storedProcedureHasFields" type="StoredProcedureHasFields" substitutionGroup="core:modelElement" />
  <xsd:complexType name="StoredProcedureHasFields">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end StoredProcedureField -->
          <xsd:element ref="storedProcedureField" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- StoredProcedureHasFields Moniker -->
  <xsd:element name="storedProcedureHasFieldsMoniker" type="StoredProcedureHasFieldsMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="StoredProcedureHasFieldsMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for StoredProcedureHasFields instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- StoredProcedureHasParameters -->
  <xsd:element name="storedProcedureHasParameters" type="StoredProcedureHasParameters" substitutionGroup="core:modelElement" />
  <xsd:complexType name="StoredProcedureHasParameters">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end StoredProcedureParameter -->
          <xsd:element ref="storedProcedureParameter" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- StoredProcedureHasParameters Moniker -->
  <xsd:element name="storedProcedureHasParametersMoniker" type="StoredProcedureHasParametersMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="StoredProcedureHasParametersMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for StoredProcedureHasParameters instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- nHydrateModelHasViews -->
  <xsd:element name="nHydrateModelHasViews" type="NHydrateModelHasViews" substitutionGroup="core:modelElement" />
  <xsd:complexType name="NHydrateModelHasViews">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end View -->
          <xsd:element ref="view" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- nHydrateModelHasViews Moniker -->
  <xsd:element name="nHydrateModelHasViewsMoniker" type="NHydrateModelHasViewsMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="NHydrateModelHasViewsMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for nHydrateModelHasViews instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- ViewHasFields -->
  <xsd:element name="viewHasFields" type="ViewHasFields" substitutionGroup="core:modelElement" />
  <xsd:complexType name="ViewHasFields">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end ViewField -->
          <xsd:element ref="viewField" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- ViewHasFields Moniker -->
  <xsd:element name="viewHasFieldsMoniker" type="ViewHasFieldsMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="ViewHasFieldsMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for ViewHasFields instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- nHydrateModelHasRelationFields -->
  <xsd:element name="nHydrateModelHasRelationFields" type="NHydrateModelHasRelationFields" substitutionGroup="core:modelElement" />
  <xsd:complexType name="NHydrateModelHasRelationFields">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end RelationField -->
          <xsd:element ref="relationField" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- nHydrateModelHasRelationFields Moniker -->
  <xsd:element name="nHydrateModelHasRelationFieldsMoniker" type="NHydrateModelHasRelationFieldsMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="NHydrateModelHasRelationFieldsMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for nHydrateModelHasRelationFields instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- EntityHasStaticDatum -->
  <xsd:element name="entityHasStaticDatum" type="EntityHasStaticDatum" substitutionGroup="core:modelElement" />
  <xsd:complexType name="EntityHasStaticDatum">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end StaticData -->
          <xsd:element ref="staticData" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- EntityHasStaticDatum Moniker -->
  <xsd:element name="entityHasStaticDatumMoniker" type="EntityHasStaticDatumMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="EntityHasStaticDatumMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for EntityHasStaticDatum instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- EntityInheritsEntity -->
  <xsd:element name="entityInheritsEntity" type="EntityInheritsEntity" substitutionGroup="core:modelElement" />
  <xsd:complexType name="EntityInheritsEntity">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end Entity -->
          <xsd:element ref="entityMoniker" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: RoleName -->
        <xsd:attribute name="roleName" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>The named relation necessary when there is more than one relation between two entities</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: IsEnforced -->
        <xsd:attribute name="isEnforced" type="xsd:boolean" >
          <xsd:annotation>
            <xsd:documentation>Determines if this relationship is enfored in the database or just in code</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Summary -->
        <xsd:attribute name="summary" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines summary text were applicable</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- EntityInheritsEntity Moniker -->
  <xsd:element name="entityInheritsEntityMoniker" type="EntityInheritsEntityMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="EntityInheritsEntityMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for EntityInheritsEntity instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- EntityHasComposites -->
  <xsd:element name="entityHasComposites" type="EntityHasComposites" substitutionGroup="core:modelElement" />
  <xsd:complexType name="EntityHasComposites">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end Composite -->
          <xsd:element ref="composite" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- EntityHasComposites Moniker -->
  <xsd:element name="entityHasCompositesMoniker" type="EntityHasCompositesMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="EntityHasCompositesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for EntityHasComposites instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- CompositeHasFields -->
  <xsd:element name="compositeHasFields" type="CompositeHasFields" substitutionGroup="core:modelElement" />
  <xsd:complexType name="CompositeHasFields">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end CompositeField -->
          <xsd:element ref="compositeField" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- CompositeHasFields Moniker -->
  <xsd:element name="compositeHasFieldsMoniker" type="CompositeHasFieldsMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="CompositeHasFieldsMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for CompositeHasFields instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- EntityHasMetadata -->
  <xsd:element name="entityHasMetadata" type="EntityHasMetadata" substitutionGroup="core:modelElement" />
  <xsd:complexType name="EntityHasMetadata">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end EntityMetadata -->
          <xsd:element ref="entityMetadata" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- EntityHasMetadata Moniker -->
  <xsd:element name="entityHasMetadataMoniker" type="EntityHasMetadataMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="EntityHasMetadataMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for EntityHasMetadata instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- FieldHasMetadata -->
  <xsd:element name="fieldHasMetadata" type="FieldHasMetadata" substitutionGroup="core:modelElement" />
  <xsd:complexType name="FieldHasMetadata">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end FieldMetadata -->
          <xsd:element ref="fieldMetadata" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- FieldHasMetadata Moniker -->
  <xsd:element name="fieldHasMetadataMoniker" type="FieldHasMetadataMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="FieldHasMetadataMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for FieldHasMetadata instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- nHydrateModelHasFunctions -->
  <xsd:element name="nHydrateModelHasFunctions" type="NHydrateModelHasFunctions" substitutionGroup="core:modelElement" />
  <xsd:complexType name="NHydrateModelHasFunctions">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end Function -->
          <xsd:element ref="function" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- nHydrateModelHasFunctions Moniker -->
  <xsd:element name="nHydrateModelHasFunctionsMoniker" type="NHydrateModelHasFunctionsMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="NHydrateModelHasFunctionsMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for nHydrateModelHasFunctions instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- FunctionHasParameters -->
  <xsd:element name="functionHasParameters" type="FunctionHasParameters" substitutionGroup="core:modelElement" />
  <xsd:complexType name="FunctionHasParameters">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end FunctionParameter -->
          <xsd:element ref="functionParameter" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- FunctionHasParameters Moniker -->
  <xsd:element name="functionHasParametersMoniker" type="FunctionHasParametersMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="FunctionHasParametersMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for FunctionHasParameters instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- FunctionHasFields -->
  <xsd:element name="functionHasFields" type="FunctionHasFields" substitutionGroup="core:modelElement" />
  <xsd:complexType name="FunctionHasFields">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end FunctionField -->
          <xsd:element ref="functionField" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- FunctionHasFields Moniker -->
  <xsd:element name="functionHasFieldsMoniker" type="FunctionHasFieldsMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="FunctionHasFieldsMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for FunctionHasFields instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- nHydrateModelHasModules -->
  <xsd:element name="nHydrateModelHasModules" type="NHydrateModelHasModules" substitutionGroup="core:modelElement" />
  <xsd:complexType name="NHydrateModelHasModules">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end Module -->
          <xsd:element ref="module" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- nHydrateModelHasModules Moniker -->
  <xsd:element name="nHydrateModelHasModulesMoniker" type="NHydrateModelHasModulesMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="NHydrateModelHasModulesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for nHydrateModelHasModules instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- FunctionReferencesModules -->
  <xsd:element name="functionReferencesModules" type="FunctionReferencesModules" substitutionGroup="core:modelElement" />
  <xsd:complexType name="FunctionReferencesModules">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end Module -->
          <xsd:element ref="moduleMoniker" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- FunctionReferencesModules Moniker -->
  <xsd:element name="functionReferencesModulesMoniker" type="FunctionReferencesModulesMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="FunctionReferencesModulesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for FunctionReferencesModules instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- ViewReferencesModules -->
  <xsd:element name="viewReferencesModules" type="ViewReferencesModules" substitutionGroup="core:modelElement" />
  <xsd:complexType name="ViewReferencesModules">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end Module -->
          <xsd:element ref="moduleMoniker" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- ViewReferencesModules Moniker -->
  <xsd:element name="viewReferencesModulesMoniker" type="ViewReferencesModulesMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="ViewReferencesModulesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for ViewReferencesModules instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- StoredProcedureReferencesModules -->
  <xsd:element name="storedProcedureReferencesModules" type="StoredProcedureReferencesModules" substitutionGroup="core:modelElement" />
  <xsd:complexType name="StoredProcedureReferencesModules">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end Module -->
          <xsd:element ref="moduleMoniker" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- StoredProcedureReferencesModules Moniker -->
  <xsd:element name="storedProcedureReferencesModulesMoniker" type="StoredProcedureReferencesModulesMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="StoredProcedureReferencesModulesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for StoredProcedureReferencesModules instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- EntityReferencesModules -->
  <xsd:element name="entityReferencesModules" type="EntityReferencesModules" substitutionGroup="core:modelElement" />
  <xsd:complexType name="EntityReferencesModules">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end Module -->
          <xsd:element ref="moduleMoniker" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- EntityReferencesModules Moniker -->
  <xsd:element name="entityReferencesModulesMoniker" type="EntityReferencesModulesMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="EntityReferencesModulesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for EntityReferencesModules instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- FieldReferencesModules -->
  <xsd:element name="fieldReferencesModules" type="FieldReferencesModules" substitutionGroup="core:modelElement" />
  <xsd:complexType name="FieldReferencesModules">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end Module -->
          <xsd:element ref="moduleMoniker" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- FieldReferencesModules Moniker -->
  <xsd:element name="fieldReferencesModulesMoniker" type="FieldReferencesModulesMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="FieldReferencesModulesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for FieldReferencesModules instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- nHydrateModelHasRelationModules -->
  <xsd:element name="nHydrateModelHasRelationModules" type="NHydrateModelHasRelationModules" substitutionGroup="core:modelElement" />
  <xsd:complexType name="NHydrateModelHasRelationModules">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end RelationModule -->
          <xsd:element ref="relationModule" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- nHydrateModelHasRelationModules Moniker -->
  <xsd:element name="nHydrateModelHasRelationModulesMoniker" type="NHydrateModelHasRelationModulesMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="NHydrateModelHasRelationModulesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for nHydrateModelHasRelationModules instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- ModuleHasModuleRules -->
  <xsd:element name="moduleHasModuleRules" type="ModuleHasModuleRules" substitutionGroup="core:modelElement" />
  <xsd:complexType name="ModuleHasModuleRules">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end ModuleRule -->
          <xsd:element ref="moduleRule" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- ModuleHasModuleRules Moniker -->
  <xsd:element name="moduleHasModuleRulesMoniker" type="ModuleHasModuleRulesMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="ModuleHasModuleRulesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for ModuleHasModuleRules instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- EntityHasIndexes -->
  <xsd:element name="entityHasIndexes" type="EntityHasIndexes" substitutionGroup="core:modelElement" />
  <xsd:complexType name="EntityHasIndexes">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end Index -->
          <xsd:element ref="index" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- EntityHasIndexes Moniker -->
  <xsd:element name="entityHasIndexesMoniker" type="EntityHasIndexesMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="EntityHasIndexesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for EntityHasIndexes instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- IndexHasIndexColumns -->
  <xsd:element name="indexHasIndexColumns" type="IndexHasIndexColumns" substitutionGroup="core:modelElement" />
  <xsd:complexType name="IndexHasIndexColumns">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end IndexColumn -->
          <xsd:element ref="indexColumn" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- IndexHasIndexColumns Moniker -->
  <xsd:element name="indexHasIndexColumnsMoniker" type="IndexHasIndexColumnsMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="IndexHasIndexColumnsMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for IndexHasIndexColumns instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- nHydrateModelHasModelMetadata -->
  <xsd:element name="nHydrateModelHasModelMetadata" type="NHydrateModelHasModelMetadata" substitutionGroup="core:modelElement" />
  <xsd:complexType name="NHydrateModelHasModelMetadata">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end ModelMetadata -->
          <xsd:element ref="modelMetadata" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- nHydrateModelHasModelMetadata Moniker -->
  <xsd:element name="nHydrateModelHasModelMetadataMoniker" type="NHydrateModelHasModelMetadataMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="NHydrateModelHasModelMetadataMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for nHydrateModelHasModelMetadata instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- EntityHasViews -->
  <xsd:element name="entityHasViews" type="EntityHasViews" substitutionGroup="core:modelElement" />
  <xsd:complexType name="EntityHasViews">
    <xsd:annotation>
      <xsd:documentation>Association relationship between an entity and a view</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end View -->
          <xsd:element ref="viewMoniker" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: RoleName -->
        <xsd:attribute name="roleName" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>The named relation necessary when there is more than one relation between two entities</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: ImportData -->
        <xsd:attribute name="importData" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Internal data to track imports</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Summary -->
        <xsd:attribute name="summary" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Determines summary text were applicable</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- EntityHasViews Moniker -->
  <xsd:element name="entityHasViewsMoniker" type="EntityHasViewsMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="EntityHasViewsMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for EntityHasViews instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- nHydrateModelHasIndexModules -->
  <xsd:element name="nHydrateModelHasIndexModules" type="NHydrateModelHasIndexModules" substitutionGroup="core:modelElement" />
  <xsd:complexType name="NHydrateModelHasIndexModules">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end IndexModule -->
          <xsd:element ref="indexModule" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- nHydrateModelHasIndexModules Moniker -->
  <xsd:element name="nHydrateModelHasIndexModulesMoniker" type="NHydrateModelHasIndexModulesMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="NHydrateModelHasIndexModulesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for nHydrateModelHasIndexModules instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Enum DataTypeConstants -->
  <xsd:simpleType name="DataTypeConstants">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="BigInt"/>
      <xsd:enumeration value="Binary"/>
      <xsd:enumeration value="Bit"/>
      <xsd:enumeration value="Char"/>
      <xsd:enumeration value="Date"/>
      <xsd:enumeration value="DateTime"/>
      <xsd:enumeration value="DateTime2"/>
      <xsd:enumeration value="DateTimeOffset"/>
      <xsd:enumeration value="Decimal"/>
      <xsd:enumeration value="Float"/>
      <xsd:enumeration value="Image"/>
      <xsd:enumeration value="Int"/>
      <xsd:enumeration value="Money"/>
      <xsd:enumeration value="NChar"/>
      <xsd:enumeration value="NText"/>
      <xsd:enumeration value="NVarChar"/>
      <xsd:enumeration value="Real"/>
      <xsd:enumeration value="SmallDateTime"/>
      <xsd:enumeration value="SmallInt"/>
      <xsd:enumeration value="SmallMoney"/>
      <xsd:enumeration value="Structured"/>
      <xsd:enumeration value="Text"/>
      <xsd:enumeration value="Time"/>
      <xsd:enumeration value="Timestamp"/>
      <xsd:enumeration value="TinyInt"/>
      <xsd:enumeration value="Udt"/>
      <xsd:enumeration value="UniqueIdentifier"/>
      <xsd:enumeration value="VarBinary"/>
      <xsd:enumeration value="VarChar"/>
      <xsd:enumeration value="Variant"/>
      <xsd:enumeration value="Xml"/>
    </xsd:restriction>
  </xsd:simpleType>
  
  <!-- Enum RelationshipTypeConstants -->
  <xsd:simpleType name="RelationshipTypeConstants">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="OneToOne"/>
      <xsd:enumeration value="OneToMany"/>
      <xsd:enumeration value="ManyToMany"/>
    </xsd:restriction>
  </xsd:simpleType>
  
  <!-- Enum IdentityTypeConstants -->
  <xsd:simpleType name="IdentityTypeConstants">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="None"/>
      <xsd:enumeration value="Database"/>
      <xsd:enumeration value="Code"/>
    </xsd:restriction>
  </xsd:simpleType>
  
  <!-- Enum DatabaseTypeConstants -->
  <xsd:simpleType name="DatabaseTypeConstants">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SQL2005"/>
      <xsd:enumeration value="SQLAzure"/>
      <xsd:enumeration value="SQL2008"/>
    </xsd:restriction>
  </xsd:simpleType>
  
  <!-- Enum ModuleRuleStatusTypeConstants -->
  <xsd:simpleType name="ModuleRuleStatusTypeConstants">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Subset">
        <xsd:annotation>
          <xsd:documentation>Enforces that all objects should be in common with the dependent module</xsd:documentation>
        </xsd:annotation>
      </xsd:enumeration>
      <xsd:enumeration value="Outerset">
        <xsd:annotation>
          <xsd:documentation>Enforces that no objects should be in common with the dependent module</xsd:documentation>
        </xsd:annotation>
      </xsd:enumeration>
    </xsd:restriction>
  </xsd:simpleType>
  
  <!-- Enum TypedEntityConstants -->
  <xsd:simpleType name="TypedEntityConstants">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="None">
        <xsd:annotation>
          <xsd:documentation>This is not a typed entity</xsd:documentation>
        </xsd:annotation>
      </xsd:enumeration>
      <xsd:enumeration value="DatabaseTable">
        <xsd:annotation>
          <xsd:documentation>The typed entity has a backing database table</xsd:documentation>
        </xsd:annotation>
      </xsd:enumeration>
      <xsd:enumeration value="EnumOnly">
        <xsd:annotation>
          <xsd:documentation>The typed entity is a code-only enumeration</xsd:documentation>
        </xsd:annotation>
      </xsd:enumeration>
    </xsd:restriction>
  </xsd:simpleType>
  
  <!-- Enum ModuleRuleInclusionTypeConstants -->
  <xsd:simpleType name="ModuleRuleInclusionTypeConstants">
    <xsd:annotation>
      <xsd:documentation>A list of options for module rule inclusions</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="None">
        <xsd:annotation>
          <xsd:documentation>Include no objects in this rule validation</xsd:documentation>
        </xsd:annotation>
      </xsd:enumeration>
      <xsd:enumeration value="View">
        <xsd:annotation>
          <xsd:documentation>Include views in this rule validation</xsd:documentation>
        </xsd:annotation>
      </xsd:enumeration>
      <xsd:enumeration value="StoredProcedure">
        <xsd:annotation>
          <xsd:documentation>Include stored procedures in this rule validation</xsd:documentation>
        </xsd:annotation>
      </xsd:enumeration>
      <xsd:enumeration value="Entity">
        <xsd:annotation>
          <xsd:documentation>Include entities in this rule validation</xsd:documentation>
        </xsd:annotation>
      </xsd:enumeration>
      <xsd:enumeration value="Function">
        <xsd:annotation>
          <xsd:documentation>Include functions in this rule validation</xsd:documentation>
        </xsd:annotation>
      </xsd:enumeration>
    </xsd:restriction>
  </xsd:simpleType>
  
  <!-- Enum IndexTypeConstants -->
  <xsd:simpleType name="IndexTypeConstants">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="PrimaryKey"/>
      <xsd:enumeration value="IsIndexed"/>
      <xsd:enumeration value="User"/>
    </xsd:restriction>
  </xsd:simpleType>
  
  <!-- Enum VisibilityTypeConstants -->
  <xsd:simpleType name="VisibilityTypeConstants">
    <xsd:annotation>
      <xsd:documentation>A list of options for module rule inclusions</xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="View">
        <xsd:annotation>
          <xsd:documentation>Show views on the diagram</xsd:documentation>
        </xsd:annotation>
      </xsd:enumeration>
      <xsd:enumeration value="StoredProcedure">
        <xsd:annotation>
          <xsd:documentation>Show stored procedures on the diagram</xsd:documentation>
        </xsd:annotation>
      </xsd:enumeration>
      <xsd:enumeration value="Function">
        <xsd:annotation>
          <xsd:documentation>Show functions on the diagram</xsd:documentation>
        </xsd:annotation>
      </xsd:enumeration>
      <xsd:enumeration value="None"/>
    </xsd:restriction>
  </xsd:simpleType>
  
  <!-- Enum DatabasePlatformConstants -->
  <xsd:simpleType name="DatabasePlatformConstants">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="SQLServer"/>
      <xsd:enumeration value="MySQL"/>
    </xsd:restriction>
  </xsd:simpleType>
  
  <!-- Enum UIDataTypeConstants -->
  <xsd:simpleType name="UIDataTypeConstants">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Custom"/>
      <xsd:enumeration value="DateTime"/>
      <xsd:enumeration value="Date"/>
      <xsd:enumeration value="Time"/>
      <xsd:enumeration value="PhoneNumber"/>
      <xsd:enumeration value="Duration"/>
      <xsd:enumeration value="Currency"/>
      <xsd:enumeration value="Html"/>
      <xsd:enumeration value="Text"/>
      <xsd:enumeration value="MultilineText"/>
      <xsd:enumeration value="EmailAddress"/>
      <xsd:enumeration value="Password"/>
      <xsd:enumeration value="Url"/>
      <xsd:enumeration value="ImageUrl"/>
    </xsd:restriction>
  </xsd:simpleType>
  
</xsd:schema>

